const express = require('express');
const router = express.Router();
const notificationController = require('../controllers/notificationController');
const { authMiddleware, adminMiddleware } = require('../middleware/auth');

// ==================== 管理员API（必须放在前面，避免被通用路由匹配） ====================

// 测试路由（用于调试）
router.get('/admin/test', (req, res) => {
  res.json({
    success: true,
    message: '通知路由正常工作',
    timestamp: new Date().toISOString()
  });
});

// 获取所有通知（含统计，仅管理员）
router.get('/admin/all', adminMiddleware, notificationController.getAllNotifications);

// 获取通知的已读状态详情（仅管理员）
router.get('/admin/:id/reads', adminMiddleware, notificationController.getNotificationReadStatus);

// ==================== 客户端/用户端API ====================

// 所有通知路由需要认证
router.use(authMiddleware);

// 获取未读数量
router.get('/unread/count', notificationController.getUnreadCount);

// 获取通知列表（客户端/用户）
router.get('/', notificationController.getNotifications);

// 标记通知状态（已读/稍后再读）
router.post('/:id/mark', notificationController.markAsRead);

// 创建通知（需要管理员权限）
router.post('/', adminMiddleware, notificationController.createNotification);

// 删除通知（需要管理员权限）
router.delete('/:id', adminMiddleware, notificationController.deleteNotification);

module.exports = router;
